home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascal4.0.2Update.sea / THINK Pascal 4.0.2 Update / About THINK Pascal 4.0.2 next >
Text File  |  1992-11-18  |  13KB  |  325 lines

  1. About THINK Pascal 4.0.2
  2. =======================
  3. Copyright © 1992 Symantec Corporation. All rights reserved.
  4. November 18, 1992
  5. Font: Geneva 12
  6.  
  7. INTRODUCTION
  8. =============
  9. THINK Pascal 4.0.2 corrects some problems with debugging programs on a 
  10. Macintosh Quadra and corrects some other problems in THINK Pascal 4.0. It 
  11. also contains a new version of SANE.p that corrects some of its interfaces 
  12. and contains new versions of Runtime.Lib, TCLRuntime.Lib, and 
  13. MARuntime.Lib that you can use in a project you’re profiling.   
  14.  
  15. This document has three more sections:
  16.  
  17.     •  UPDATING THINK PASCAL tells you how to run 
  18.         “THINK Pascal -> 4.0.2.sea” and “Misc Updates.sea” to update  
  19.         your copy of THINK Pascal.
  20.     
  21.     •  WHAT THIS UPDATE FIXES lists the most important bugs that 
  22.         this update fixes.
  23.  
  24.     •  LAST MINUTE CHANGES lists some last minute changes and 
  25.         corrections to the THINK Pascal User Manual. This section 
  26.         contains much of the information in the READ ME file on your 
  27.         THINK Pascal 4.0 disk, in addition to some more recent 
  28.         information. 
  29.  
  30. UPDATING THINK PASCAL
  31. =======================
  32. This update transforms your existing THINK Pascal 4.0 application to THINK 
  33. Pascal 4.0.2. You will run the patch program “THINK Pascal => 4.0.2” and 
  34. then replace some runtime libraries.
  35.  
  36.     1. Make sure that you have your original THINK Pascal
  37.         application. You won't need it for this update, but you 
  38.         should make sure that you have a backup in case the 
  39.         update fails. Do not patch your original master disk.
  40.  
  41.     ••••
  42.     NOTE
  43.     ••••
  44.         Do not patch your original master disk. If you have 
  45.         problems installing or using this patch, you’ll need it.
  46.  
  47.     2. Double-click THINK Pascal -> 4.0.2.sea.
  48.  
  49.     3. A standard file dialog appears. Move to your Development folder  
  50.         and click Extract.  The patch program “THINK Pascal => 4.0.2”  
  51.         is placed in your development folder.
  52.         
  53.     4. Double-click on the patch program “THINK Pascal => 4.0.2”. 
  54.         Click on the Update THINK Pascal button.
  55.  
  56.     5. Find the THINK Pascal application in your THINK 
  57.         Pascal Folder. Select it and click on the Patch button.
  58.  
  59.     6. If the patch was successful, you'll see a confirmation.
  60.     
  61.     7. Delete “THINK Pascal => 4.0.2” from your hard disk.
  62.  
  63.     8. Double-click on the program “Misc Updates.sea.”
  64.     
  65.     9. A standard file dialog appears. Move to your Development folder  
  66.         and click Extract.
  67.         
  68.   10. The archive decompresses its files and places them on your hard  
  69.         disk. It places all the files, except UMemory.p, into the proper
  70.         folder. Its progress is shown in a  a dialog. The archive quits 
  71.         when it’s done.
  72.  
  73.   11.  If you’re a MacApp user, replace your old copy of UMemory.p with
  74.          the copy that the archive placed in your THINK Pascal 4.0 folder.
  75.          Your old copy of UMemory.p should be in your THINK MacApp folder. 
  76.          If you don’t use MacApp, you may delete UMemory.p.
  77.  
  78.   12. The next time you open a project, THINK Pascal asks if you want 
  79.         to convert the project, overwriting the existing version. Click
  80.         Yes.
  81.  
  82.  
  83. WHAT THIS UPDATE FIXES
  84. =======================
  85. THINK Pascal 4.0.2 is a minor upgrade to THINK Pascal 4.0 that lets you 
  86. use THINK Pascal on a Macintosh Quadra and fixes some bugs. 
  87. MiscUpdates.sea replaces these files:
  88.     •  Runtime.Lib in your THINK Pascal 4.0 Folder
  89.     •  Project Utilties in your THINK Pascal 4.0 Folder
  90.     •  DA Shell in your THINK Pascal 4.0 Folder
  91.     •  TCLRuntime.Lib in your Libraries folder
  92.     •  µRuntime.Lib in your Libraries folder
  93.     •  RSRCRuntime.Lib in your Libraries folder
  94.     •  DRVRRuntime.Lib in your Libraries folder
  95.     •  µRuntime.Lib in your Libraries folder
  96.     •  SANE.p in your Interfaces folder
  97.     •  MARuntime.Lib in your Libraries folder
  98.     •  UFailure.a.o in THINK MacApp : Libraries : Debug
  99.     •  UFailure.a.o in THINK MacApp : Libraries : Non-Debug
  100.     •  UMemory.p in THINK MacApp
  101.  
  102. MiscUpdates.sea adds these files:
  103.     •  About Failure Handlers
  104.     •  UFailure.a
  105.  
  106. The rest of this section describes the most significant bugs that THINK
  107. Pascal 4.0.2 fixes.  Fixes that were not in the THINK Pascal 4.0.1 patch
  108. are marked with double bullets.
  109.  
  110. •• The MacApp Special Failure handlers now work correctly.  (Please refer 
  111.      the file  “About Failure Handlers”)
  112.  
  113. •• Calling Exit() in a procedure far up in the call chain works correctly.
  114.  
  115. •• RememberA4() works correctly with multi-segment code resources.
  116.  
  117. •• Changing the screen setup doesn’t crash THINK Pascal.
  118.  
  119. •• You can choose Run Options… when no project is open.
  120.  
  121. •• MacApp projects work correctly on 68040 machines.
  122.  
  123. •• For MacApp users there is a new UMemory.p that turns off debugging for 
  124.     routines that MacApp’s LoadSeg() patches call. 
  125.  
  126. •• The compiler generates correct code for expressions with a 32-bit
  127.      multiply and a constant zero.
  128.  
  129. •• The DA Shell is compatible with INITs that modify the Apple menu.
  130.  
  131. •• When the 32-bit Addressing option is on, the Apple menu appears 
  132.      correctly in the menu bar.
  133.  
  134. •• If you choose Undo or Redo while the Observe window is frontmost, 
  135.      its contents are correctly drawn.
  136.  
  137. •• When you’re running System 7 and you open a file by double-clicking it, 
  138.      the default directory is the one containing that file.
  139.      
  140. •• Calling GetMenu() with a menu ID that doen't exist in your project no 
  141.      longer returns one of THINK Pascal’s menus.
  142.  
  143. •• When the main segment of a multi-segment code resource is too large,
  144.      THINK Pascal now displays a link error.
  145.  
  146. •• Double-clicking on words in the Compiler Options dialog selects the 
  147.      words correctly.
  148.      
  149. •• Odd color effects are no longer displayed when you click and tab in the
  150.      Observe window.
  151.  
  152. • The new versions of Runtime.Lib, TCLRuntime.Lib, MARuntime.Lib, and 
  153.    µRuntime.Lid let you reset a program that you are profiling.
  154.     
  155. • Project Utilities works correctly when you choose Back Up.
  156.  
  157. • SANE.p has all correct function interfaces.
  158.  
  159. • Multi-segment code resources and drivers that move in memory after
  160.    loading or unloading a segment work correctly.
  161.       
  162. • When running in 32-bit mode, the LightsBug heap display is correct.
  163.          
  164. • When you use Undo, Cut, or Paste to edit source code for a program while 
  165.    it’s running, THINK Pascal displays an alert and doesn’t perform the edit if 
  166.    you click No.
  167.    
  168. • Tabs always look the same on the screen and printed copy.
  169.    
  170. • The Command-key equivalent for Entire Document in the Save As...
  171.    dialog is now Command-E and doesn’t conflict with the command-key 
  172.    equivalent for the Desktop button.
  173.    
  174. • Printing the Text window in draft mode on an ImageWriter works
  175.    correctly.
  176.    
  177. • THINK Pascal generates correct code  for all assignment statements 
  178.    with a short-circuit Boolean expression on the right-hand side.
  179.    
  180. • THINK Pascal is now compatible with the breakpointing scheme used 
  181.    in recent versions of MacsBug.   
  182.    
  183. • On a Macintosh Quadra, you can now call _MaxApplZone while running in 
  184.    the THINK Pascal environment. 
  185.  
  186. • Your project can contain more than 127 segments.
  187.     
  188. • THINK Pascal correctly places a stop sign in your file after it displays
  189.    an alert.
  190.  
  191. • The Use Second Screen option works correctly even if the main screen 
  192.    isn’t the first device in the device list.
  193.  
  194. • The “Custom Header” option for code resources works correctly.
  195.  
  196. LAST MINUTE CHANGES
  197. ====================
  198. •  This disk contains the file “Installing THINK Pascal,” which tells you how
  199.     to set up THINK Pascal on your hard drive. It duplicates Chapter 2, 
  200.     “Installing THINK Pascal,” in the THINK Pascal User Manual. It’s included 
  201.     on disk so the people who never read manuals can read it. If the document 
  202.     contradicts anything in the manual, follow the document. The differences 
  203.     may reflect minor changes in the layout of the disks.
  204.     
  205. Editing
  206. -------
  207. • The Clean Up Windows command described on page 78 is not in THINK
  208.    Pascal 4.0.
  209.  
  210. Using Predefined Routines
  211. ------------------------
  212. •  The declaration for the routine DeviceLoop that’s built into THINK Pascal 
  213.     is incorrect.  To use the routine, be sure to include this declaration in any
  214.     file that calls it:
  215.     
  216.         PROCEDURE DeviceLoop( drawingRgn: RgnHandle;
  217.             drawingProc: DeviceLoopDrawingProcPtr;
  218.             userData: LongInt; flags: LongInt );
  219.         INLINE $ABCA;
  220.  
  221. •  On page 142, the list of built-in interfaces is incorrect. These files are 
  222.     NOT built into THINK Pascal:
  223.     
  224.     MacPrint.p        MemTypes.p            OSIntf.p
  225.     PackIntf.p        PaletteMgr.p        PickerIntf.p
  226.     QDOffscreen.p    SCSIIntf.p            ToolIntf.p
  227.     VideoIntf.p
  228.     
  229.     QDOffscreen.p is included with THINK Pascal. You can use its functions
  230.     if you include the file in your project and in your uses statment. The 
  231.     others are not included in THINK Pascal because they duplicate other 
  232.     interfaces or because they are no longer used.
  233.  
  234. •  On pages 142 and 143, Sounds.p is in both lists of interfaces: those that 
  235.     are built-in and those that aren’t. There are in fact two versions of 
  236.     Sounds.p. The interfaces are for the Source Manager routines in Inside
  237.     Macintosh V and VI are NOT built-in. You can use the functions if you 
  238.     include the file in your project and your uses statment The interfaces for
  239.     the Sound Manager routines in Inside Macintosh I to IV are built-in.
  240.                 
  241. LightsBug
  242. ---------
  243. •  LightsBug does not display the correct values of these fields of a 
  244.     WindowRecord: windowPic, visRgn, and clipRgn. To see their correct 
  245.     values, use the Observe window. 
  246.  
  247. THINK Pascal Menus
  248. ------------------
  249. •  On page 239, the first sentence in the Far Code option’s description
  250.     should read:
  251.     
  252.         If this option is on, THINK Pascal lets you write large
  253.         applications: applications with a jump table as large as 256K. 
  254.  
  255. Using MacApp
  256. -------------
  257. •  You MUST use MacApp 2.0.1 or 2.0.2, and you MUST discard your current 
  258.     THINK MacApp folder and convert your MacApp sources again with the 
  259.     materials supplied with THINK Pascal 4.0. For more information, see
  260.     the Object-Oriented Programming manual, Appendix A, “MacApp and
  261.     THINK Pascal.”
  262.  
  263. •  The “MacApp 2.0 for THINK Pascal 4.0” folder contains special versions 
  264.     of the UFailure library in the “Special Failure Handlers” folder. Use these 
  265.     libraries if you’re running a MacApp project under THINK Pascal, and you 
  266.     need to debug your failure-handling routines. For more information, see 
  267.     the file “Using the Special Failure Handlers” in the “Special Failure 
  268.     Handlers” folder.
  269.  
  270. •  The MacApp failure-handling routines do not work in programs running
  271.     under the THINK Pascal environment. THINK Pascal may crash if your
  272.     program invokes the failure chain. You can conditionally compile the
  273.     routine Failure in UFailure.p so that it halts your program and issues
  274.     a message, instead of invoking the failure chain.
  275.  
  276. Using Launching Utilities with THINK Pascal
  277. ----------------------------------------
  278. Don’t use utilities that launch other applications, like ICOM’s OnCue or Now
  279. Software’s MultiMaster, while you are running an application in the THINK
  280. Pascal environment.
  281.  
  282. Using SetupA4 and RestoreA4
  283. ---------------------------
  284. If you write multi-segment drivers, desk accessories, or code resources,
  285. make sure that any routine that needs to call SetupA4 and RestoreA4 is in
  286. the same segment as RSRCRuntime.Lib or DRVRRuntime.Lib. 
  287.  
  288. Using Object Pascal in Multi-Segement Code Resources
  289. --------------------------------------------------
  290. If you're using THINK Pascal 4.0 to write code resources with Object Pascal, 
  291. there are some important details that you should note:
  292.  
  293.      1. In the By Segment view of the Project Window, the <<%_SelProcs>> and
  294.           <<%_MethTables>> entries should be together in a different segment
  295.           than the main program.
  296.  
  297.      2. In the file that contains Main, insert the following code before the
  298.          main procedure:
  299.  
  300.           {$S %_MethTables}
  301.           {$Push}
  302.           {$N-}
  303.           procedure LoadMethTables;
  304.           begin
  305.  
  306.           end;
  307.           {$Pop}
  308.           {$S}
  309.  
  310.      3. The beginning of your Main procedure should look something like this:
  311.  
  312.           procedure Main {any optional arguments};
  313.           begin
  314.                RememberA4;
  315.                SetupA4;
  316.                LoadMethTables;
  317.  
  318.                {     rest of Main's code     }
  319.      
  320.                RestoreA4;
  321.           end;
  322.  
  323. The important thing here is that you must call LoadMethTables (a routine
  324. in the %_MethTables segment), before you use any object-related routines 
  325. (including New). Otherwise, objects won’t work.